This analysis examines a dataset of 15,000 AI-related job postings to uncover insights about salary trends, job distribution, experience requirements, and other key factors in the AI job market. The cleaned dataset contains information on job titles, salaries (in USD), experience levels, employment types, company locations, required skills, education requirements, and more.
Salary Variation Insights
The histogram visualizes the distribution of AI job salaries in USD. The following key statistics provide insight into the dataset:
Mean Salary: $115,348.97
The average salary for AI jobs in the dataset.
Median Salary: $99,705.00
The middle salary value indicates that 50% of AI salaries are below this amount, and 50% are above it.
Salary Range: $366,576.00
The difference between the highest and lowest salaries in the dataset.
Standard Deviation: $60,260.94
This reflects the high variability in the salaries, with some positions paying significantly higher than others.
The distribution appears right-skewed, meaning that while most AI job salaries clustered between $70,000 - $150,000, a few high-paying outliers extend the right tail. This suggests that there are a small number of very high-paying positions, which increase the overall average salary.
Distribution of AI Job Salaries
Code
# Salary distributionfig = px.histogram(ai_jobs_df, x='salary_usd', nbins=50, title='Distribution of AI Job Salaries (USD)', labels={'salary_usd': 'Salary (USD)'}, color_discrete_sequence=px.colors.sequential.RdBu)fig.update_layout(bargap=0.1, plot_bgcolor='rgba(0,0,0,0)',paper_bgcolor='rgba(0,0,0,0)')fig.show()
Recommendation Job seekers should focus on developing specialized skills that qualify them for positions in the upper quartile above $146,408.
Salary Distribution by Experience Level
Code
## Salary by Experience Levelexp_order = ['entry level', 'mid level', 'senior', 'expert']fig = px.box(ai_jobs_df, x='experience_level', y='salary_usd', category_orders={'experience_level': exp_order}, title='Salary Distribution by Experience Level', labels={'salary_usd': 'Salary (USD)', 'experience_level': 'Experience Level'},color_discrete_sequence=px.colors.sequential.RdBu)fig.update_layout( plot_bgcolor='rgba(0,0,0,0)',paper_bgcolor='rgba(0,0,0,0)')fig.show()
Insight
As expected, salaries increase with experience level, but the jump from senior to expert is particularly significant. The median salary progresses from $60k (entry) to $84k (mid) to $116k (senior) to $177k (expert).
Statistical Test
ANOVA confirms significant differences between groups (F=1,234, p<0.001). Post-hoc tests show all pairwise comparisons are significant (p<0.01).
Job Posting Over Time
Code
fig = px.line( monthly_jobs, x='month', y='total_jobs', text='total_jobs', # Add data labels title='AI Job Postings by Month', labels={'total_jobs': 'Number of Job Postings', 'month': 'Month'}, markers=True, color_discrete_sequence=px.colors.sequential.RdBu # Custom color sequence)fig.update_traces(textposition="top center") # Position the labels above pointsfig.update_xaxes(type='category') # Treat x-axis as categoryfig.update_layout( plot_bgcolor='rgba(0,0,0,0)',paper_bgcolor='rgba(0,0,0,0)')fig.show()
Insight: Job postings peak in April (1,927) and hit a low in September (895). The dip in summer months may reflect hiring cycles in the tech industry.
Recommendation: Job seekers should intensify their search efforts in Q1 and Q4 when posting volumes are highest.
Remote Work Analysis
Code
# Remote work distributionremote_counts = ai_jobs_df['remote_ratio'].value_counts().reset_index()fig = px.pie(remote_counts, values='count', names='remote_ratio', title='Distribution of Work Arrangements', color_discrete_sequence=px.colors.sequential.RdBu)fig.update_traces(textinfo='percent+label')fig.update_layout( plot_bgcolor='rgba(0,0,0,0)',paper_bgcolor='rgba(0,0,0,0)')fig.show()
The market is nearly evenly split between fully on-site 33.8%, hybrid 33.4%, and fully remote 32.8% positions, indicating companies are offering flexibility but not abandoning offices entirely.
“Machine Learning Researcher” is the most common title, 5.4% of postings, followed closely by “AI Software Engineer” 5.2% and “Autonomous Systems Engineer” 5.2%. This reflects strong demand for both research and applied AI roles.
Salary by Industry
Code
# Salary by industryfig = px.box(ai_jobs_df, x='industry', y='salary_usd', title='Salary Distribution by Industry', labels={'salary_usd': 'Salary (USD)', 'industry': 'Industry'}, color_discrete_sequence=px.colors.sequential.RdBu)fig.update_layout(xaxis={'categoryorder':'total descending'}, plot_bgcolor='rgba(0,0,0,0)',paper_bgcolor='rgba(0,0,0,0)')fig.show()
Government, Telecommunications, Healthcare, Education, and Finance are leading sectors that offer the highest salaries, while retail and media tend to pay less. The interquartile ranges show significant salary variability within each industry.
Experience drives salary: There’s a strong positive correlation 0.74 between years of experience and salary. More experience clearly leads to higher pay.
The benefits score shows a very weak positive correlation with salary.
Job description length has negligible correlation with any variable.
Salary Distribution Across Countries
Code
# Top 10 countries by salarytop_countries = ai_jobs_df['company_location'].value_counts().nlargest(10).indexfiltered_df = ai_jobs_df[ai_jobs_df['company_location'].isin(top_countries)]fig = px.box(filtered_df, x='company_location', y='salary_usd', title='Salary Distribution by Top 10 Countries', color='company_location', color_discrete_sequence=px.colors.sequential.RdBu, labels={'salary_usd': 'Salary (USD)', 'company_location': 'Country'})fig.update_layout(showlegend=False, plot_bgcolor='rgba(0,0,0,0)',paper_bgcolor='rgba(0,0,0,0)')fig.show()